package JDBC;

import com.mysql.cj.jdbc.MysqlDataSource; //mysql驱动包的内容

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;

public class Test {
    public static void main(String[] args) throws SQLException {
        Scanner sc=new Scanner(System.in);
        // 1.创建数据源
        DataSource dataSource=new MysqlDataSource();
        ((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java?characterEncoding=utf8&useSSL=false");
        //MysqlDataSource dataSource=new MysqlDataSource();
        //dataSource.setUrl("jdbc:mysql://127.0.0.1:3306/java?characterEncoding=utf8&useSSL=false");
        ((MysqlDataSource)dataSource).setUser("root");
        ((MysqlDataSource)dataSource).setPassword("12s34567");

        // 2.和数据库服务器建立网络连接
        Connection connection=dataSource.getConnection(); //封装了拨号和接通的操作

        // 3.写sql发给sql服务器
        //   mysql服务器只认sql语句，因此要让Java构造出一个sql语句的字符串发送给数据库服务器；
        //   字符串sql不符合jdbc的要求，需要通过sql字符串构造出语句对象
        System.out.print("请输入用户id:");
        int id=sc.nextInt();
        System.out.print("请输入用户姓名:");
        String name=sc.next();
        //不推荐写法
        //String sql="insert into student values("+id+",'"+name+"')";
        String sql="insert into student values(?,?)";

        //Statement statemen=connection.createStatement(sql);
        PreparedStatement statement=connection.prepareStatement(sql);
        //此处设置内容
        statement.setInt(1,id);
        statement.setString(2,name);
        // 4.将语句发送给服务器执行，n为当前操作影响了多少行
        int n=statement.executeUpdate();
        //    statement.executeQuery();
        System.out.println("n="+n);
        // 5.释放相关网络资源
        statement.close();
        connection.close();
    }
}
